#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<assert.h>
void InsertSort(int* a, int n);
void ShellSort(int* a, int n);
void TestOP();
void Swap(int* p, int* n);
void SelectSort(int* a, int n);
void AdjustDwon(int* a, int n, int root);
void HeapSort(int* a, int n);
void BubbleSort(int* a, int n);
int PartSort1(int* a, int begin, int end);
void QuickSort(int* a, int left, int right);
int MiddleIndex(int* a, int begin, int end);
int PartSort2(int* a, int left, int right);
int PartSort3(int* a, int left, int right);
void QuickSortNonR(int* a, int left, int right);
void MergeSort(int* a, int n);
void MergeSortNonR(int* a, int n);
void CountSort(int* a, int n);
